// pages/detail/detail.js
const http = require("../../api/index")
const {
  baseURL
} = require("../../utils/request")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    value: 4,
    showInfo: false,
    showFac: false,
    type: '1',
    modalHide: true,
    phoneNumber: '12345678900',
    destination: {
      latitude: 39.904989, // 目的地纬度
      longitude: 116.405285 // 目的地经度
    },
    campDetail: {},
    // 是否收藏
    isFavorited: false,
    // 防抖
    debounceTimeout: null,
    oss_url: baseURL,
    isFavorited: false, // 初始收藏状态
    isCoolingDown: false, // 是否处于冷却状态
    coolDownTime: 1000, // 冷却时间，单位：毫秒,
    campEvaluateList: '', //评论列表
    facilityList: '', // 营地信息
    CampCampsiteList: '', //营位
    spotsList: '', //周边景点
    projectList: '', //其他项目
    activityList: '', //活动列表,
    userId: wx.getStorageSync("userInfo")["userId"]

  },
  showFacilities() {
    this.setData({
      showFac: true
    })
  },
  hideFacilities() {
    this.setData({
      showFac: false
    })
  },
  showCampInfo() {
    this.setData({
      showInfo: true
    })
  },
  hideCampInfo() {
    this.setData({
      showInfo: false
    })
  },

  // 获取滚动条当前位置
  onPageScroll(e) {
    // console.log(e)
    if (e.scrollTop > 100) {
      this.setData({
        floorstatus: true
      });
    } else {
      this.setData({
        floorstatus: false
      });
    }
  },

  //回到顶部
  goTop(e) { // 一键回到顶部
    if (wx.pageScrollTo) {
      wx.pageScrollTo({
        scrollTop: 0
      })
    }
  },
  //点击导航跳转到腾旭地图页面
  goNavigation() {
    // console.log(this.data.campDetail);
    const latitude = this.data.campDetail.latitude
    const longitude = this.data.campDetail.longitude
    // console.log(latitude,longitude);
    // 调用微信官方的函数跳转到腾讯地图页面
    wx.openLocation({
      latitude: Number(latitude), // 纬度
      longitude: Number(longitude), // 经度
      scale: 28, // 缩放比例
      name: this.data.campDetail.campName, // 位置名
      address: this.data.campDetail.address
    });
    
    // wx.navigateTo({
    //   url: `/pages/mapNavigation/mapNavigation?latitude=${latitude}&longitude=${longitude}&name=${this.data.campDetail.campName}&address=${this.data.campDetail.address}`,
    // })

  },
  //点击电话
  goPhone() {
    console.log(this.data.campDetail, "222")
    wx.makePhoneCall({
      phoneNumber: this.data.campDetail.phone,
      success: function () {
        console.log('拨打电话成功！');
      },
      fail: function () {
        console.log('拨打电话失败！');
      }
    });
  },
  //获取评论列表
  getEvaluateList(campId) {
    http.evaluateList(campId).then(res => {
      this.setData({
        campEvaluateList: res.data
      })
      console.log(res, "评论列表")
    })
  },
  // 我要评价
  toEvaluate() {
    wx.navigateTo({
      url: `/pages/evaluate/evaluate?campId=${this.data.campDetail.campId}`
    })
  },
  // 发送收藏请求
  toggleFavorite() {
    if (this.data.isCoolingDown) {
      // 如果处于冷却状态，则提示用户
      wx.showToast({
        title: '操作太频繁，请稍后再试',
        icon: 'none'
      });
      return;
    }

    this.setData({
      isCoolingDown: true
    });

    // 根据当前收藏状态决定调用哪个接口
    if (this.data.isFavorited) {
      // 取消收藏
      this.cancelFavorite();
    } else {
      // 收藏
      this.addFavorite();
    }
  },

  //添加收藏
  addFavorite: function () {
    // 发送收藏请求
    http.collectCamp({
      campId: this.data.campDetail.campId,
      userId: this.data.userId
    }).then(res => {
      // 成功后更新状态
      this.setData({
        isFavorited: true,
        isCoolingDown: false
      });
      // 提示用户
      wx.showToast({
        title: '收藏成功',
        icon: 'success'
      })
    })
  },

  //取消收藏
  cancelFavorite: function () {
    // 发送取消收藏请求
    http.removeCollectCamp({
      campId: this.data.campDetail.campId,
      userId: this.data.userId
    }).then(res => {
      // 成功后更新状态
      this.setData({
        isFavorited: false,
        isCoolingDown: false
      });

      // 提示用户
      wx.showToast({
        title: '取消收藏成功',
        icon: 'success'
      })
    })
  },

  // 是否收藏
  getCollect(userId, campId) {
    http.collectList(userId).then((res) => {
      if (res.code === 200) {
        for (let i = 0; i < res.data.length; i++) {
          if (res.data[i].campId === campId) {
            this.setData({
              isFavorited: true,
              isCoolingDown: false
            });
          }
        }
      }
    })
  },

  //查看更多
  goCampEvaluate() {
    wx.navigateTo({
      url: `/pages/campEvaluate/campEvaluate?campId=${this.data.campDetail.campId}`,
    })
  },
  hideModal() {
    this.setData({
      modalHide: true
    })
  },
  toSurroundingAttractions() {
    wx.navigateTo({
      url: '/pages/surroundingAttractions/surroundingAttractions',
    })
  },
  // 预约
  toReservation() {
    wx.navigateTo({
      url: `/pages/reservation/reservation?campId=${this.data.campDetail.campId}`,
    })
  },
  getCampDetail(campId) {
    http.campDetail(campId).then(res => {
      console.log(res);
      // 判断有没有逗号 有就是多张图片
      let item = res.data
      if (item.imageUrl.indexOf(',') != -1) {
        item.images = item.imageUrl.split(',')
      } else {
        item.images = []
        item.images.push(item.imageUrl)
      }
      this.setData({
        campDetail: res.data
      })
      // console.log(this.data.campDetail,"campDetail")
    })
  },
  // 营地信息
  getFacility(campId) {
    http.getFacilitiesA(campId).then((res) => {
      // console.log(res, '33333');
      if (res.code === 200) {
        this.setData({
          facilityList: res.data
        })
      }
    })
  },
  // 营位
  getCampCampsite(campId) {
    http.getCampCampsite(campId).then((res) => {
       console.log(res, '123123');

      if (res.code === 200) {
        for(let i = 0; i<res.data.length; i++){
          if(res.data[i].factor !== null){
            res.data[i].factors = []
            const list = res.data[i].factor.split(',')
            for(let j = 0 ; j<list.length ; j++){
              if(list[j] == 1){
                res.data[i].factors.push("有水")
              }else if(list[j] == 2){
                res.data[i].factors.push("有电")
              }else if(list[j] == 3){
                res.data[i].factors.push("无水")
              }else if(list[j] == 4){
                res.data[i].factors.push("无水")
              }else if(list[j] == 5){
                res.data[i].factors.push("有新能源车充电桩")
              }else if(list[j] == 6){
                res.data[i].factors.push("有卫生间")
              }else{
                res.data[i].factors.push("其他条件")
              }
            }
          }
        }
        this.setData({
          CampCampsiteList: res.data
        })
      }
      console.log(res, '123123');

    })
  },
  // 周边景点
  getSpots(campId) {
    http.getSpots(campId).then((res) => {
      console.log(res, '###');
      if (res.code === 200) {
        this.setData({
          spotsList: res.data
        })
      }
    })
  },
  goSpotsNavigation(e) {
    console.log(e);
    const item = e.currentTarget.dataset.item
    const latitude = item.latitude
    const longitude = item.longitude
    // 调用微信官方的函数跳转到腾讯地图页面
    wx.openLocation({
      latitude: Number(latitude), // 纬度
      longitude: Number(longitude), // 经度
      scale: 28, // 缩放比例
      name: item.scenicName, // 位置名
      address: item.address
    });
  },
  // 其他项目
  getProject(campId) {
    http.getProject(campId).then((res) => {
      console.log(res, '456456');
      if (res.code === 200) {
        this.setData({
          projectList: res.data
        })
      }
    })
  },
  // 活动列表
  getActivity(campId) {
    http.getActivity(campId).then((res) => {
      console.log(res, '123123');
      if (res.code === 200) {
        this.setData({
          activityList: res.data
        })
      }
    })
  },
  rad(d) {
    return d * Math.PI / 180.0;
  },
  getDistance(lat1, lng1, lat2, lng2) {
    var radLat1 = this.rad(lat1);
    var radLat2 = this.rad(lat2);
    var a = radLat1 - radLat2;
    var b = this.rad(lng1) - this.rad(lng2);
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
      Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137; // EARTH_RADIUS;
    s = Math.round(s * 10000) / 10000; //输出为公里
    var distance = s;
    var distance_str = "";
    if (parseInt(distance) >= 1) {
      distance_str = distance.toFixed(1) + "km";
    } else {
      distance_str = distance * 1000 + "m";
    }
    //s=s.toFixed(4);
    console.info('距离是', s);
    console.info('距离是', distance_str);
    return s;
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(options);
    const campId = options.campId
    if (campId) {
      this.getCampDetail(campId)
      this.getEvaluateList(campId)
      this.getFacility(campId)
      this.getSpots(campId)
      this.getCampCampsite(campId)
      this.getProject(campId)
      this.getActivity(campId)
      this.getCollect(this.data.userId, campId)
    }
  },
  linkCustomer(){
    wx.navigateTo({
      url: '../customerService/customerService',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})